package com.jushu.storbox.filesystem;

import java.io.InputStream;

import com.huawei.sharedrive.sdk.android.modelV2.response.FileInfoResponseV2;

/**
 * 
 * File Manager Interface
 * 
 */
public interface iFileManager {

	/**
	 * Clear cache
	 * 
	 * @return
	 */
	public boolean clearCloudDriveCache();

	/**
	 * @param absoluteFile
	 *            String
	 * @return 
	 */
	public void createAbsoluteFilePath(String absoluteFile);
	
	/**
	 * @param path
	 *            String
	 * @return IFile
	 */
	public void createFilePath(String path);
	
	
	/**
	 * @param filePath
	 * @return 
	 */
	public boolean deleteFile(String filePath);
	
	/**
	 * @param filePath
	 * @return
	 */
	public InputStream encryptFileToInputStream(String filePath);
	
	/**
	 * @param filePath
	 *            String
	 * @return boolean
	 */
	public boolean fileIsExist(String filePath);
	
	/**
	 * get Folder Name in device
	 * 
	 * @param folderPath
	 *            String
	 * @return double
	 */
	public String getFileName(String filePath);
	
	/**
	 * get file' parent path
	 * @return parent path
	 */
	public String getParentPath(String filePath);
	
	/**
	 * get Folder Size in device
	 * 
	 * @param folderPath
	 *            String
	 * @return double
	 */
	public double getFileSize(String filePath);
	
	/**
	 * get cloudDrive Size in device
	 * 
	 * @return
	 */
	public double getCloudDriveSize();
	
	/**
	 * @param fileName
	 *            String
	 */
	public void openFile(String filePath, long fileSize);
	
			
	/**
     * @param encryptedPath
     *           String
     * @param decryptedPath
     *           String
     */    
    public void decryptedFile(String encryptedPath, String decryptedPath);
    
    /**
     * @param name
     * @return
     */
    public FileInfoResponseV2 getFileInfo(String id,String folderID, String path);
    
    /**
     * get Folder Size in device
     * 
     * @param folderPath
     *            String
     * @return double
     */
    public String getParentFolderName(String filePath);
    
    /**
     * @param fileName
     *            String
     */
    public boolean isWPSType(String filePath);
    
    /**
     * @param oldFilePath
     * @param newFilePath
     *            
     * @return
     */
    public boolean rename(String oldFilePath ,String newFilePath);
}
